Index: wine-1.1.23/dlls/shell32/shellpath.c
===================================================================
--- wine-1.1.23.orig/dlls/shell32/shellpath.c
+++ wine-1.1.23/dlls/shell32/shellpath.c
@@ -2125,7 +2125,7 @@ static void _SHCreateSymbolicLinks(void)
 {
     UINT aidsMyStuff[] = { IDS_MYPICTURES, IDS_MYVIDEO, IDS_MYMUSIC }, i;
     int acsidlMyStuff[] = { CSIDL_MYPICTURES, CSIDL_MYVIDEO, CSIDL_MYMUSIC };
-    static const char * const xdg_dirs[] = { "PICTURES", "VIDEOS", "MUSIC", "DESKTOP" };
+    static const char * const xdg_dirs[] = { "PICTURES", "VIDEOS", "MUSIC", "DOCUMENTS", "DESKTOP" };
     static const unsigned int num = sizeof(xdg_dirs) / sizeof(xdg_dirs[0]);
     WCHAR wszTempPath[MAX_PATH];
     char szPersonalTarget[FILENAME_MAX], *pszPersonal;
@@ -2161,9 +2161,14 @@ static void _SHCreateSymbolicLinks(void)
                     mkdir(szMyStuffTarget, 0777);
             }
         } 
+        else if (xdg_results && xdg_results[num - 2])
+        {
+            /* the folder specified by XDG_DOCUMENTS_DIR exists. */
+            strcpy(szPersonalTarget, xdg_results[num - 2]);
+        }
         else
         {
-            /* '$HOME/My Documents' doesn't exists, but '$HOME' does. */ 
+            /* '$HOME/My Documents' and XDG_DOCUMENTS_DIR don't exist, but '$HOME' does. */ 
             strcpy(szPersonalTarget, pszHome);
         }
 
